package com.zlt.service;

import com.zlt.dto.AdminDTO;
import com.zlt.entity.Admin;
import com.zlt.entity.Company;
import com.zlt.entity.License;
import com.zlt.entity.Question;
import com.zlt.service.impl.AdminServiceImpl;
import com.zlt.vo.Pager;

import java.util.List;

public interface AdminService {

    /**
     * 获取AdminService的单例对象
     *
     * @return AdminServiceImpl对象
     */
    static AdminService getInstance() {
        return AdminServiceImpl.INSTANCE;
    }

    /**
     * 查询是否存在该用户
     *
     * @param adminDTO
     * @return Admin对象
     */
    Admin isExistedUsername(AdminDTO adminDTO);

    /**
     * 查询所有公司信息
     *
     * @param page  当前页
     * @param limit 每页条数
     * @return Pager分页信息
     */
    Pager<Company> companyInfo(Integer page, Integer limit);

    /**
     * 返回指定状态的公司信息
     *
     * @param page
     * @param limit
     * @param state
     * @return
     */
    Pager<Company> companyInfo(Integer page, Integer limit, Integer state);

    /**
     * 查询反馈信息，分页显示
     *
     * @param page  当前页
     * @param limit 每页条数
     * @param isAll 是否查询所有
     * @param state 反馈状态
     * @return 没有返回null
     */
    Pager<Question> listQuestions(Integer page, Integer limit, Boolean isAll, Integer... state);

    /**
     * 该变公司的状态
     *
     * @param cid
     * @param state
     * @return
     */
    Integer changeCompanyState(Integer cid, Integer state);

    /**
     * 通过公司id查询许可证
     *
     * @param cid
     * @return
     */
    List<License> findLicenses(Integer cid);


}
